home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000…tember: Reference Library / Dev.CD Sep 00 RL Disk 1.toast / mac / Technical Documentation / Develop / develop Issue 27 / develop Issue 27 code / Internet Config Assistant / InternetAssistant / CInternetConfig.cp next >
Encoding:
Text File  |  1996-05-31  |  3.8 KB  |  171 lines  |  [TEXT/CWIE]

  1. /*
  2.     File:        CInternetConfig.h
  3.  
  4.     Contains:    Layer on top of Internet Config
  5.  
  6.     Written by:    Arno Gourdol
  7.  
  8.     Copyright:    © 1996 by Apple Computer, Inc., all rights reserved.
  9.  
  10. */
  11.  
  12. #include "CInternetConfig.h"
  13. #include "assert.h"
  14.  
  15. #include "ICTypes.h"
  16. #include "ICKeys.h"
  17. #include "ICAPI.h"
  18.  
  19.  
  20.  
  21.  
  22. // --------------------------------------------------------------------
  23. // CInternetConfig
  24. // --------------------------------------------------------------------
  25.  
  26. CInternetConfig::CInternetConfig(OSType creator) :
  27.     fInstance(NULL)
  28. {
  29.     OSErr err;
  30.     
  31.     err = ICStart(&fInstance, creator);
  32.     if (err != noErr)
  33.         fInstance = NULL;
  34.     else
  35.     { 
  36.         ICFindConfigFile(fInstance, 0, NULL);
  37.         assert(err == noErr);
  38.     }
  39. }
  40.  
  41.  
  42.  
  43. // --------------------------------------------------------------------
  44. // ~CInternetConfig
  45. // --------------------------------------------------------------------
  46.  
  47. CInternetConfig::~CInternetConfig()
  48. {
  49.     if (fInstance != NULL)
  50.     {
  51.         OSErr err;
  52.         err = ICStop(fInstance);
  53.         assert(err == noErr);
  54.     }
  55. }
  56.  
  57.  
  58.  
  59. // --------------------------------------------------------------------
  60. // ICGetString
  61. // --------------------------------------------------------------------
  62. // Get an Internet Config attribute stored as a Pascal string
  63.  
  64. void CInternetConfig::ICGetString(ConstStr255Param attributeName, 
  65.                                     Str255 string)
  66. {
  67.     long size = sizeof(Str255);
  68.     ICAttr attribute;
  69.     OSErr err = ICGetPref(fInstance, attributeName, &attribute, 
  70.                             (Ptr)string, &size);
  71.     
  72.     if (err != noErr)
  73.         string[0] = 0;
  74. }
  75.  
  76.  
  77.  
  78. // --------------------------------------------------------------------
  79. // ICGetText
  80. // --------------------------------------------------------------------
  81. // Get an Internet Config attribute stored as a text pointer
  82.  
  83. void CInternetConfig::ICGetText(ConstStr255Param attributeName, 
  84.                                     Str255 string)
  85. {
  86.     long size = sizeof(Str255) - 1;
  87.     ICAttr attribute;
  88.     OSErr err = ICGetPref(fInstance, attributeName, &attribute, 
  89.                             (Ptr)&string[1], &size);
  90.     
  91.     if (err == noErr)
  92.     {
  93.         assert(size <= 255);
  94.         string[0] = size;
  95.     }
  96.     else
  97.     {
  98.         string[0] = 0;
  99.     }
  100. }
  101.  
  102.  
  103.  
  104. // --------------------------------------------------------------------
  105. // ICGetScrambledString
  106. // --------------------------------------------------------------------
  107. // Get an Internet Config attribute stored as a scrambled pascal string
  108.  
  109. void CInternetConfig::ICGetScrambledString(
  110.                         ConstStr255Param attributeName, Str255 string)
  111. {
  112.     ICGetString(attributeName, string);
  113.     
  114.     if (string[0] != 0)
  115.     {
  116.         for (short i = 1; i <= string[0]; i++)
  117.         {
  118.             string[i] = string[i] ^ (0x55 + i);
  119.         }
  120.     }
  121. }
  122.  
  123.  
  124.  
  125. // --------------------------------------------------------------------
  126. // ICSetString
  127. // --------------------------------------------------------------------
  128. // Set an Internet Config attribute stored as a pascal string
  129.  
  130. void CInternetConfig::ICSetString(ConstStr255Param attributeName, 
  131.                                     Str255 string)
  132. {
  133.     OSErr err = ICSetPref(fInstance, attributeName, ICattr_no_change, 
  134.                             (Ptr)string, string[0] + 1);
  135. }
  136.  
  137.  
  138.  
  139. // --------------------------------------------------------------------
  140. // ICSetText
  141. // --------------------------------------------------------------------
  142. // Set an Internet Config attribute stored as a text pointer
  143.  
  144. void CInternetConfig::ICSetText(ConstStr255Param attributeName, 
  145.                                 Str255 string)
  146. {
  147.     OSErr err = ICSetPref(fInstance, attributeName, ICattr_no_change, 
  148.                             (Ptr)&string[1], string[0]);
  149. }
  150.  
  151.  
  152.  
  153. // --------------------------------------------------------------------
  154. // ICSetScrambledString
  155. // --------------------------------------------------------------------
  156. // Set an Internet Config attribute stored as a scrambled pascal string
  157.  
  158. void CInternetConfig::ICSetScrambledString(
  159.                         ConstStr255Param attributeName, Str255 string)
  160. {
  161.     Str255 scrambledString;
  162.     
  163.     scrambledString[0] = string[0];
  164.     
  165.     for (short i = 1; i <= string[0]; i++)
  166.     {
  167.         scrambledString[i] = string[i] ^ (0x55 + i);
  168.     }
  169.     ICSetString(attributeName, scrambledString);
  170. }
  171.